The purpose of the NOV Data Access API is to provide a slim wrapper around .NET API for working with relational data. NOV Data Access API is not as complete as the API of .NET, but is more simple, and is portable, meaning that you can expose connections to different relational database from a single-code base, regardless of the platform that you deploy to.
Before you can perform any queries or commands towards a database, you need to connect to it. The connection to a database is represented by an instance of the NDbConnection class. The following code snippet tries to open a connection to ODBC server database:
Open DB Connection |
Copy Code
|
// first check whether the specific type of connection is supported
if (NDbConnection.IsTypeSupported(ENDbConnectionType.Odbc))
{
NDbConnection connection = null;
try
{
// try open the connection
connection = NDbConnection.Open(ENDbConnectionType.Odbc, "DSN=Xtreme");
// TODO - execute queries and commands
}
catch (Exception ex)
{
// TODO: report connection or execution error
}
finally
{
// close the connection
if (connection != null)
{
connection.Close();
}
}
}
|
The type of connection is specified by the ENDbConnectionType enumeration, which current defines the following entries:
- Odbc - connection to ODBC.
- OleDb - connection to OleDb.
- SqlServer - connection to a SQL server.
- OracleServer - connection to Oracle server.
As shown in the example, you must first check whether your environment supports a specific type of connection before trying to open such a connection. Trying to open an unsupported connection type will result in an exception.
Never forget to close the connection once you have finished using it.
Once you have successfully opened a connection you can generally execute three types of commands towards it:
Method |
Description |
NDbDataReader ExecuteReader(string sqlQuery)
|
Executes the query against this connection, and returns a NDbDataReader. |
int ExecuteNonQuery(string sqlStatement)
|
Executes a SQL statement against this connection and returns the number of affected rows. |
object ExecuteScalar(string command)
|
Executes the query and returns the first column of the first row in the result set returned by the query. All other columns and rows are ignored. |
The following code example executes a SQL query and reads the results:
Reading SQL Query |
Copy Code
|
// TODO - execute queries and commands
NDbDataReader reader = connection.ExecuteReader("SELECT * FROM SALES");
while (reader.Read())
{
string name = Convert.ToString(reader.GetRowValue(0));
double price = Convert.ToDouble(reader.GetRowValue(1));
}
|
You can also make a NMemoryDataTable from a NDbDataReader like this:
Creating a NMemoryDataTable from a NDbDataReader |
Copy Code
|
NDbDataReader reader = connection.ExecuteReader("SELECT * FROM SALES");
NMemoryDataTable dataTable = new NMemoryDataTable(reader);
|